const express = require('express')
const app = express()
app.use(express.urlencoded())
app.use(express.json())
// 手写表单格式转对象中间件
app.use((req,res,next)=>{
    let dataStr=''
    req.on('data',chunk=>{
        urlStr+=chunk.toString()
    })
    // forEach
    req.on('end',chunk=>{
        let o={}
        const data=urlStr.split('&').forEach(item=> {
            const [key,value]=item.split('=')
            o[key]=value
        });
        req.body=o
    })
    // reduce
    // req.on('end',chunk=>{
    //     const data=urlStr.split('&').reduce((prev,current)=>{
    //         let [key,value]=current.split('=')
    //         prev[key]=value
    //         return {}
    //     },{})
    //       req.body=data
    // })
    next()
})
const userinfo = {
    code: '10000',
    message: '查询成功',
    userData: [
        { userID: '001', data: { name: '晓月', age: '23', sex: '男' } },
        { userID: '002', data: { name: '晓陌', age: '19', sex: '男' } },
        { userID: '003', data: { name: '晓欧', age: '24', sex: '男' } },
        { userID: '004', data: { name: '晓诚', age: '22', sex: '男' } },
        { userID: '005', data: { name: '晓夜', age: '20', sex: '男' } }]
}
const userToken='asjdlakjdalsdjasld'
app.use((req, res, next) => {
    res.set('Access-Control-Allow-Origin', 'http://127.0.0.1:5500')
    res.set('Access-Control-Allow-headers', 'token')
    next()
})
app.get('/user', (req, res) => {
    const {userID}=req.query
    if (req.headers.token!==userToken){
        return res.send({
            code:10001,
            message:'该用户没有权限',
            userData:null
        })
    }
    // if(userID>'100'&&userID<0){
    //     return res.send({
    //         code:10002,
    //         message:'请输入正确的序号',
    //         userData:null
    //     })
    // }
    // 查看数据库是否有该数据
    const userData=userinfo.userData.filter((item,index,arr)=> item.userID===userID)
    if(userData.length < 0){
        return res.send({
            code:10002,
            message:'请输入正确的序号',
            userData:null
        })
    }
    
        res.send(userData[0]) 
    // 数租filter源码
    // Array.prototype.myFilter = function (callBack) {
    //     let arr = []
    //    for (let i = 0; i < this.length; i++) {
    //     //callBack的返回结果就是filter后面return的判断条件
    //         if(callBack(this[i],i,this)){
    //             arr.push(this[i])
    //         }        
    //    } 
    //    return arr
    // }
   
       
})
app.listen(9000, () => {
    console.log('服务器部署成功，地址http://127.0.0.1:9000');
})